#include "e2d/yml/render/Serializer.h"

void e2d::render::Serializer::EncodeComponents(YAML::Node& node, const e2d::Entity* entity)
{
	EncodeEntity<e2d::CameraView>(node, entity);
	EncodeEntity<e2d::CameraViewEdit>(node, entity);
	EncodeEntity<e2d::LightSource>(node, entity);
	EncodeEntity<e2d::FixedMeshRender>(node, entity);
	EncodeEntity<e2d::SkinnedMeshRender>(node,  entity);
	EncodeEntity<e2d::ImageQuad>(node, entity);
	EncodeEntity<e2d::Texts>(node, entity);
	EncodeEntity<e2d::SkyboxView>(node, entity);
	EncodeEntity<e2d::LightEnv>(node, entity);
}

void e2d::render::Serializer::DecodeComponents(const YAML::Node& node, e2d::Entity* entity)
{
	DecodeEntity<e2d::CameraView>(node,entity);
	DecodeEntity<e2d::CameraViewEdit>(node, entity);
	DecodeEntity<e2d::LightSource>(node, entity);
	DecodeEntity<e2d::FixedMeshRender>(node,  entity);
	DecodeEntity<e2d::SkinnedMeshRender>(node,  entity);
	DecodeEntity<e2d::ImageQuad>(node,  entity);
	DecodeEntity<e2d::Texts>(node, entity);
	DecodeEntity<e2d::SkyboxView>(node, entity);
	DecodeEntity<e2d::LightEnv>(node, entity);
}
